home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 17 / CU Amiga Magazine's Super CD-ROM 17 (1997)(EMAP Images)(GB)[!][issue 1997-12].iso / CUCD / Programming / DiceSource / master / Doc / dice_errors.doc < prev    next >
Text File  |  1994-02-01  |  78KB  |  2,012 lines

  1. dice/C1:001,C1:002,C1:003,C1:004,C1:006
  2.  
  3.     __autoinit, __autoexit, __geta4, __chip, floating point
  4.     -------------------------------------------------------
  5.     These error messages should only occur if you are using the freeware
  6.     release, and attempt to use features not supported in that limited
  7.     version.
  8.  
  9. dice/C1:009                                                      dice/C1:009
  10.  
  11.     Unexpected EOF
  12.     --------------
  13.     The source or header file ended abruptly, for example ending in the
  14.     middle of a quoted string or macro.
  15.  
  16. dice/C1:010                                                      dice/C1:010
  17.  
  18.     Char Const Too Large!
  19.     ---------------------
  20.     Only 4 characters are allowed within a character constant, more than
  21.     four, such as 'abcde' will generate this error.
  22.  
  23. dice/C1:011                                                      dice/C1:011
  24.  
  25.     NewLine in string constant
  26.     --------------------------
  27.     A newline occurs within a string constant, such as the next two
  28.     lines:
  29.  
  30.     "abcd
  31.     efgh"
  32.  
  33.     This is not legal under ANSI C. Instead, you can create a single
  34.     large string using "string1" "string2" ... two sets of quoted strings
  35.     with no delimiter, putting them side by side or on separate lines as
  36.     you like.
  37.  
  38. dice/C1:012                                                      dice/C1:012
  39.  
  40.     Illegal character '%c' $%02x
  41.     ----------------------------
  42.     Certain characters are illegal. One example is '#', when not part of
  43.     a preprocessor directive:  int x= 43#.
  44.  
  45. dice/C1:013                                                      dice/C1:013
  46.  
  47.     Unexpected Token '%s' expected '%s'
  48.     -----------------------------------
  49.     The expected token wasn't the one we got! The error message tells you
  50.     what the character was and what was expected.  This is normally
  51.     indicative of mismatched parenthesis or a semi-colon inside a
  52.     subroutine call that expected commas or a close parenthesis.  Most
  53.     full featured prograzmmer's editors can match braces (ie. find a
  54.     matching } for every {) to help track these errors down.
  55.  
  56. dice/C1:014                                                      dice/C1:014
  57.  
  58.     __geta4 keyword does NOT work with residentable executables!
  59.     ------------------------------------------------------------
  60.     __geta4 requires the base of the data to be at a known absolute
  61.     relocatable location. You cannot use __geta4 in conjunction with -r
  62.     because residentable code allocates its data segment at run time.
  63.     Keep in mind that in the most common situation where you might get
  64.     such an error -- writing shared libraries and devices, making the
  65.     program resident would not buy you anything anyway.  The other common
  66.     situation where you would need to use __geta4 -- Amiga shared library
  67.     callbacks, currently requires you to not make such executables
  68.     residentable.
  69.  
  70. dice/C1:015                                                      dice/C1:015
  71.  
  72.     More than 32K of auto variables!
  73.     --------------------------------
  74.     DICE accesses all stack variables using word-register-relative, thus
  75.     no more than 32KBytes worth of stack variables may be declared.
  76.  
  77. dice/C1:016                                                      dice/C1:016
  78.  
  79.     Unsupported return type
  80.     -----------------------
  81.     You attempted to return a type that is currently unsupported.  Since
  82.     all return types including structural returns are now supported, you
  83.     should not get this error message.  Getting this error message would
  84.     most likely be due to a bug in DICE.
  85.  
  86. dice/C1:017                                                      dice/C1:017
  87.  
  88.     constant does not fit storage: %d
  89.     ---------------------------------
  90.     DICE will, in some cases, catch the use of constants that are out of
  91.     range in a particular situation. For example, specifying the constant
  92.     '128' in relation to a signed character (-128 to 127).
  93.  
  94.     DICE checks constant-fit only in hazzardous situations such as in a
  95.     switch().
  96.  
  97. dice/C1:018                                                      dice/C1:018
  98.  
  99.     size mismatch: %d, %d
  100.     ---------------------
  101.     This is a code generation error which can occur when you compare or
  102.     run operations on incompatible types.  This error occurs when high
  103.     level routines in the compiler fail to detect a problem with your
  104.     source.
  105.  
  106. dice/C1:019                                                      dice/C1:019
  107.  
  108.     repeated case: %d (0x%08lx)
  109.     ---------------------------
  110.     The specified case, given in both decimal and hex, occurs more than
  111.     once within a switch statement.
  112.  
  113. dice/C1:020,C1:021                                        dice/C1:020,C1:021
  114.  
  115.     block operation error in source, block operation error in dest
  116.     --------------------------------------------------------------
  117.     Generally means that either the source or the destination of a
  118.     block-op, such as a structure assignment, are incompatible. For
  119.     example:
  120.  
  121.     foo = bar;
  122.  
  123.     where foo has a different structure type than bar. Generally this
  124.     error is preceeded by an "illegal assignment" error.
  125.  
  126. dice/C1:022                                                      dice/C1:022
  127.  
  128.     dest not lvalue
  129.     ---------------
  130.     Generally occurs if the object of an assignment is not assignable
  131.     ("lvalue means modifiable value). However, note that DICE is notably
  132.     weak in this area. It will cheerfully allow you to do things like (a
  133.     + b) = c + d;, obviously illegal.
  134.  
  135. dice/C1:023                                                      dice/C1:023
  136.  
  137.     syntax error in expression
  138.     --------------------------
  139.     A General syntax error in an expression occured. Usually occurs due
  140.     to an illegally constructed expression, such as:
  141.  
  142.     a ] b;
  143.  
  144.     can also occur due to too few parenthesis.
  145.  
  146. dice/C1:024                                                      dice/C1:024
  147.  
  148.     expected expression
  149.     -------------------
  150.     An expression was expected when, instead, either nothing or a
  151.     statement was found. This can also occur due to a syntax error in the
  152.     expression.
  153.  
  154. dice/C1:025                                                      dice/C1:025
  155.  
  156.     expected '}'
  157.     ------------
  158.     A close brace was expected, for example, a global declaration such
  159.     as:
  160.  
  161.     int a[] = { 1, 2, 3;
  162.  
  163. dice/C1:026                                                      dice/C1:026
  164.  
  165.     expected %d close parens
  166.     ------------------------
  167.     Expected one or more close parenthesis in an expression.
  168.  
  169. dice/C1:027                                                      dice/C1:027
  170.  
  171.     expected close bracket
  172.     ----------------------
  173.     Expected a close bracket ']', generally caused by an incomplete array
  174.     index such as a[i = 4;
  175.  
  176. dice/C1:028                                                      dice/C1:028
  177.  
  178.     expected identifer after . or ->
  179.     --------------------------------
  180.     A structure indirection via '.' or '->' requires a structure member
  181.     to be specified. i.e. a field MAJOR HEADING.
  182.  
  183. dice/C1:029                                                      dice/C1:029
  184.  
  185.     expected ',' or ')' in function call
  186.     ------------------------------------
  187.     Expected a delimiter in a function call. Either comma if another
  188.     argument is to be given, or a close parenthesis to end the function
  189.     call.
  190.  
  191. dice/C1:030                                                      dice/C1:030
  192.  
  193.     undefined symbol: %s
  194.     --------------------
  195.     The given symbol is not defined. For example, referencing a variable
  196.     that was not defined or extern'd.
  197.  
  198. dice/C1:031                                                      dice/C1:031
  199.  
  200.     expected integer constant
  201.     -------------------------
  202.     An integer constant was expected, generally occurs when you declare
  203.     an array. For example, the following is illegal: int i[j];
  204.  
  205. dice/C1:032                                                      dice/C1:032
  206.  
  207.     not an lvalue
  208.     -------------
  209.     Occurs when an lvalue was expected, usually in an assignment. An
  210.     lvalue is an expression which exists in real storage, for example:
  211.  
  212.     *ptr = 4;
  213.  
  214.     the expression '*ptr' points to real storage where as the expression
  215.     (a + b) in;
  216.  
  217.     (a + b) = 4;
  218.  
  219.     does NOT.  Note that DICE is not very good at catching lvalues errors
  220.     yet.
  221.  
  222. dice/C1:033                                                      dice/C1:033
  223.  
  224.     goto label not found: %.*s
  225.     --------------------------
  226.     The label that was given as a target for a goto statement was not
  227.     found anywhere in the procedure.
  228.  
  229. dice/C1:034                                                      dice/C1:034
  230.  
  231.     constant div/mod by 0
  232.     ---------------------
  233.     You attempted to use the '/' or '%' operator with the constant value
  234.     0 on the right hand side. Division/Modulus by 0 is illegal.
  235.  
  236. dice/C1:035                                                      dice/C1:035
  237.  
  238.     ptr-ptr mismatch: type %s
  239.     -------------------------
  240.     Generally occurs in a pointer comparison or assignment. The two
  241.     pointers do not point to the same type. Example,
  242.  
  243.     char *a; long *b; if (a < b);
  244.  
  245.     The error message indicates the type of the pointer that you are
  246.     attempting to use.  This is typically followed by an error C1:115
  247.     which contains the type that was expected.
  248.  
  249. dice/C1:036                                                      dice/C1:036
  250.  
  251.     unexpected void type
  252.     --------------------
  253.     Occurs due to an illegally constructed expression where the result
  254.     storage is void.
  255.  
  256. dice/C1:037                                                      dice/C1:037
  257.  
  258.     result not used
  259.     ---------------
  260.     This warning occurs in some cases where an expression has been
  261.     calculated but the result ends up not being used.  For example:
  262.  
  263.     a <= 4;
  264.  
  265. dice/C1:039                                                      dice/C1:039
  266.  
  267.     & of bitfield illegal
  268.     ---------------------
  269.     It is not legal to take the address of a bitfield element in a
  270.     structure since no pointer representation is possible.
  271.  
  272. dice/C1:040                                                      dice/C1:040
  273.  
  274.     indirection through non-ptr
  275.     ---------------------------
  276.     Example: int a; *a = 4; ... i.e. where 'a' wasn't a pointer. Will
  277.     also occur if you attempt to index a variable which is not an array
  278.     or pointer, i.e. a[4] = 4; where 'a' is an integer instead of an
  279.     array/pointer.
  280.  
  281. dice/C1:041                                                      dice/C1:041
  282.  
  283.     must #include <alloca.h> for alloca
  284.     -----------------------------------
  285.     DICE requires a special alloca. To obtain it any modules that use
  286.     alloca() must #include <alloca.h> which redefines it properly.
  287.  
  288. dice/C1:042                                                      dice/C1:042
  289.  
  290.     left hand side of assignment is not a procedure
  291.     -----------------------------------------------
  292.     You attempted to make a procedure call, such as foo(23); where foo is
  293.     not a procedure. Example:
  294.  
  295.     int foo;
  296.     ...
  297.     foo(23);
  298.  
  299.     This can occur if you accidently declare a variable whos MAJOR
  300.     HEADING is the same as a procedure you attempt to call.
  301.  
  302. dice/C1:043                                                      dice/C1:043
  303.  
  304.     unprototyped call
  305.     -----------------
  306.     When the -proto option to DCC is used, any procedure call which is
  307.     not prototyped will generate this error.
  308.  
  309. dice/C1:044, C1:045
  310.  
  311.     too few parameters in call, too many parameters in call
  312.     -------------------------------------------------------
  313.     For prototyped procedures, the number of arguments is generally
  314.     known. DICE will print these warnings if you make a procedure call
  315.     with too few or too many arguments.
  316.  
  317. dice/C1:046                                                      dice/C1:046
  318.  
  319.     not structure or union type
  320.     ---------------------------
  321.     An attempt was made to indirect through a structure or union where
  322.     the left hand side was not a structure or union type.
  323.  
  324. dice/C1:047                                                      dice/C1:047
  325.  
  326.     maximum auto storage for temporaries exceeded
  327.     ---------------------------------------------
  328.     DICE tracks stack temporaries, mainly for floating point. If DICE's
  329.     maximum number of temporaries is exceeded due to an overly complex
  330.     expression, this error will be given.  You should try breaking up the
  331.     code into smaller chunks.
  332.  
  333. dice/C1:048                                                      dice/C1:048
  334.  
  335.     register not allocated: %d
  336.     --------------------------
  337.     This is generally an indication of a software error within DC1 if not
  338.     preceeded by other error messages.
  339.  
  340. dice/C1:049                                                      dice/C1:049
  341.  
  342.     expected integer type
  343.     ---------------------
  344.     An integer type was expected but instead a non-integer type was
  345.     found. For example, trying to use a float to index an array.
  346.  
  347. dice/C1:050                                                      dice/C1:050
  348.  
  349.     illegal ptr arithmatic
  350.     ----------------------
  351.     This error generally occurs when you do something illegal with a
  352.     pointer. For example, while 'ptr - i' is valid, 'i - ptr' is not.
  353.     While you can subtract two pointers 'p1 - p2', you cannot add two
  354.     pointers 'p1 + p2'.
  355.  
  356. dice/C1:051,C1:052
  357.  
  358.     illegal ptr conversion, illegal structure conversion
  359.     ----------------------------------------------------
  360.     These errors generally occurs when you attempt to cast a structure to
  361.     a pointer or vise versa.
  362.  
  363. dice/C1:053                                                      dice/C1:053
  364.  
  365.     illegal cast
  366.     ------------
  367.     A catch all for casts that DICE does not understand, such as
  368.     converting integers into arrays.
  369.  
  370. dice/C1:054                                                      dice/C1:054
  371.  
  372.     ptr-int conversion
  373.     ------------------
  374.     Generally occurs when DICE is forced to convert a pointer to an
  375.     integer, for example when making a procedure call and passing a
  376.     pointer when the procedure expected an integer.
  377.  
  378. dice/C1:055                                                      dice/C1:055
  379.  
  380.     illegal int conversion
  381.     ----------------------
  382.     It is illegal to convert an integer to a structure or vice-versa,
  383.     generally the error occurs through an explicit cast.
  384.  
  385. dice/C1:056                                                      dice/C1:056
  386.  
  387.     int-ptr conversion
  388.     ------------------
  389.     Generally occurs when DICE is forced to convert an integer to a
  390.     pointer, for example when making a procedure call and passing an
  391.     integer when the procedure expected a pointer.    The most common
  392.     problem related to this is not having #include'd the appropriate
  393.     prototypes for various Amiga library calls or for your own routines.
  394.  
  395. dice/C1:057                                                      dice/C1:057
  396.  
  397.     int/ptr mismatch
  398.     ----------------
  399.     Generally occurs when you compare two unlike types (an integer and a
  400.     pointer).
  401.  
  402. dice/C1:058                                                      dice/C1:058
  403.  
  404.     illegal or incompatible structure operation
  405.     -------------------------------------------
  406.     When you assign structures to each other they must be of the same
  407.     type and size. May also occur if you accidently assign a structure to
  408.     a non-structure or vice-versa.
  409.  
  410. dice/C1:059                                                      dice/C1:059
  411.  
  412.     illegal assignment
  413.     ------------------
  414.     The assignment is illegal. Usually occurs if you attempt to assign a
  415.     field in a structure in the structure definition, like:
  416.  
  417.     struct foo {
  418.         int x = 4; /* huh ?? */
  419.     };
  420.  
  421. dice/C1:060                                                      dice/C1:060
  422.  
  423.     illegal ptr-int or int-ptr conversion, int-size != ptr-size
  424.     -----------------------------------------------------------
  425.     This is catch-all for programs that convert between pointers and
  426.     integers and vice-versa. You can only convert an int or long to a
  427.     pointer and back in DICE. Converting to or from a short is illegal.
  428.  
  429. dice/C1:061                                                      dice/C1:061
  430.  
  431.     illegal bit-field operation
  432.     ---------------------------
  433.     The bitfield operation is not legal. Generally occurs when you
  434.     attempt to declare a bitfield not part of a structure or union.
  435.  
  436. dice/C1:062                                                      dice/C1:062
  437.  
  438.     illegal compare
  439.     ---------------
  440.     Generally occurs when you attempt to compare two structures. You can
  441.     only use == and != when comparing structures.
  442.  
  443. dice/C1:063                                                      dice/C1:063
  444.  
  445.     undefined structure tag: %s
  446.     ---------------------------
  447.     Generally occurs when you attempt to reference a field in a structure
  448.     which has yet to be defined.  Note that it is perfectly legal to
  449.     declare pointers to undefined structures as long as you do not
  450.     attempt to reference a field in the structure.
  451.  
  452.     The error message indicates the structure tag that was not found.
  453.  
  454. dice/C1:064                                                      dice/C1:064
  455.  
  456.     undefined struct/union field: %s
  457.     --------------------------------
  458.     The specified field does not exist in the structure definition.
  459.  
  460. dice/C1:065                                                      dice/C1:065
  461.  
  462.     ran out of memory
  463.     -----------------
  464.     DICE ran out of memory. The README file outlines possible steps to
  465.     take ranging from making fewer things resident to specifying a
  466.     temporary directory on your HD instead of in T: (usually assigned to
  467.     RAM:). The best work around is to split up large source files into
  468.     smaller ones.
  469.  
  470. dice/C1:066                                                      dice/C1:066
  471.  
  472.     fp constant string too long!
  473.     ----------------------------
  474.     A floating point constant is too long (> 128 digits). DICE can only
  475.     handle so much.
  476.  
  477. dice/C1:067                                                      dice/C1:067
  478.  
  479.     fp constant too large to convert to int
  480.     ---------------------------------------
  481.     The fp constant is less than -0x80000000 or larger than 0x7FFFFFFF
  482.     and thus cannot be converted to an integer.
  483.  
  484. dice/C1:068                                                      dice/C1:068
  485.  
  486.     expected semicolon
  487.     ------------------
  488.     A semicolon was expected. For example:
  489.  
  490.     int a<--- oops
  491.     int b;
  492.  
  493.     Generally occurs when something unexpected happens, a semicolon is
  494.     not always the correct solution. For example, can occur if you have
  495.     too many close braces.
  496.  
  497. dice/C1:069                                                      dice/C1:069
  498.  
  499.     illegal type/storage qualifier for variable
  500.     -------------------------------------------
  501.     The type or storage qualifier is illegal for this variable
  502.     declaration.
  503.  
  504. dice/C1:070                                                      dice/C1:070
  505.  
  506.     illegal typedef
  507.     ---------------
  508.     The typedef is illegal.
  509.  
  510. dice/C1:071                                                      dice/C1:071
  511.  
  512.     multiply defined procedure
  513.     --------------------------
  514.     You have defined a procedure (definition means procedure declaration
  515.     with { ... code ... }) more than once in the same source file.
  516.  
  517. dice/C1:072                                                      dice/C1:072
  518.  
  519.     type too complex
  520.     ----------------
  521.     Occurs if a type is too complex for DICE to handle. For example, DICE
  522.     cannot deal with an array with 32 dimensions.
  523.  
  524. dice/C1:073                                                      dice/C1:073
  525.  
  526.     syntax error in declaration
  527.     ---------------------------
  528.     This is a very general error that indicates that DICE no longer
  529.     understood what you were trying to compile.  If there are any other
  530.     previous errors, they could have cascaded to the point of confusion.
  531.     Otherwise, the problem should be at the error position or immediately
  532.     before it.  Note that sometimes an error in a #include file sometimes
  533.     does not show up until immediately after the end of the file.
  534.  
  535. dice/C1:074                                                      dice/C1:074
  536.  
  537.     enum identifier overides variable/type
  538.     --------------------------------------
  539.     Occurs if you create an enum identifier that overides an existing
  540.     typedef or variable.  While enum's are supposed to be in a separate
  541.     domain, this is one of the areas in which DICE is not totally ANSI.
  542.  
  543. dice/C1:075                                                      dice/C1:075
  544.  
  545.     id missing in procedure declaration
  546.     -----------------------------------
  547.     You have made a procedure definition, probably using the ANSI
  548.     procedure definition style, but forgotten to specify an identifier
  549.     for one of the arguments.  Only procedure REFERENCES may leave off
  550.     the identifier.
  551.  
  552.     void fubar(int) {...} /* not ok in definition     */
  553.  
  554.     void fubar(int);      /*  ok in prototype */
  555.  
  556. dice/C1:076                                                      dice/C1:076
  557.  
  558.     procedure id decl not in id list
  559.     --------------------------------
  560.     This occurs if you declare a procedure with arguments old style and
  561.     mistakenly declare a variable that wasn't specified in the identifier
  562.     list.
  563.  
  564.     int fubar(a,b,c)
  565.     int a, b, c, d;
  566.     {
  567.     }
  568.  
  569.     Note that the variable 'd' did not exist in the id list.
  570.  
  571. dice/C1:077                                                      dice/C1:077
  572.  
  573.     statement's condition must be an expression
  574.     -------------------------------------------
  575.     RETURN, IF, DO and WHILE require an expression or nothing. The middle
  576.     argument for FOR() requires an expression. Whatever you gave the
  577.     compiler, it wasn't an expression.
  578.  
  579. dice/C1:078                                                      dice/C1:078
  580.  
  581.     duplicate default: in switch
  582.     ----------------------------
  583.     You have more than one default: statement in a switch.
  584.  
  585. dice/C1:080                                                      dice/C1:080
  586.  
  587.     expected '{' or '}' for procedure def
  588.     -------------------------------------
  589.     Just a more specific error message to the general syntax error. There
  590.     is something wrong with your procedure definition, DICE expected an
  591.     open brace and then the procedure but didn't see an open brace.
  592.  
  593. dice/C1:081                                                      dice/C1:081
  594.  
  595.     case/default outside switch
  596.     ---------------------------
  597.     with DICE, the case and default statements must be on the same
  598.     semantic level as the switch() { ... } even though ANSI says they can
  599.     be in lower levels. At least for now. The other common cause is if
  600.     you really do have a case or default statement outside of the switch
  601.     statement.
  602.  
  603. dice/C1:082                                                      dice/C1:082
  604.  
  605.     else without if
  606.     ---------------
  607.     You have an ELSE statement not associated with any IF statement. The
  608.     most common mistake is when you accidently put two statements in
  609.     between an IF and an ELSE without using braces, like this:
  610.  
  611.     if (i == 0)
  612.         i = 1; j = 2; /* wrong, need braces if */
  613.               /* more than one stmt    */
  614.     else
  615.     i = 3;
  616.  
  617.     Which more commonly occurs if you use #define macros heavily.
  618.  
  619. dice/C1:083                                                      dice/C1:083
  620.  
  621.     too many initializers
  622.     ---------------------
  623.     This error will occur if you specify more initializers in a structure
  624.     assignment then the structure has fields.  For example:
  625.  
  626.     struct { int a, b; } Fu = { 1, 2, 3 };
  627.     /* where's the 3 go? */
  628.  
  629. dice/C1:084                                                      dice/C1:084
  630.  
  631.     array cannot hold string
  632.     ------------------------
  633.     This error will occur if you declare an array and initialize it to a
  634.     string that is larger then the array.  Note that the special case
  635.     where the string's nil terminator is just outside the array is
  636.     allowed (the nil terminator is ignored).
  637.  
  638.     char Fu[3] = { "abcd" };
  639.  
  640. dice/C1:085                                                      dice/C1:085
  641.  
  642.     illegal register specification
  643.     ------------------------------
  644.     This error occurs if you specify more then one register for a
  645.     procedure argument.  E.G.  void fubar(__D0 __D1 int a) { ... }
  646.  
  647. dice/C1:086                                                      dice/C1:086
  648.  
  649.     Variable not used: %*.*s
  650.     ------------------------
  651.     This warning informs you of variables which you have declared but not
  652.     referenced.
  653.  
  654. dice/C1:087                                                      dice/C1:087
  655.  
  656.     Illegal return type
  657.     -------------------
  658.     This error indicates that you have attempted to return a type which
  659.     is incompatible with the return type of the procedure.    For example,
  660.     returning an integer from a procedure which is supposed to return
  661.     void.
  662.  
  663. dice/C1:088                                                      dice/C1:088
  664.  
  665.     Warning, SAS/C __qualifier placement
  666.     ------------------------------------
  667.     DICE attempts to be somewhat SAS/C compatible in terms of type
  668.     qualifier placement but, frankly, SAS/C is too wierd in some
  669.     respects.  With DICE, extensions normally occur BEFORE the type MAJOR
  670.     HEADING while in SAS/C they normally occur AFTER the type MAJOR
  671.     HEADING.  DICE will accept SAS/C qualifier placement and issue this
  672.     warning, but note that in this particular case multiple declarators
  673.     separated by commas will not work using SAS/C qualifier placement:
  674.  
  675.     int __chip a, b; /*DOESN'T WORK, ONLY A in CHIP*/
  676.  
  677.     __chip int a, b; /*OK,    BOTH A & B ARE IN CHIP    */
  678.  
  679.     You should also note that DICE accepts __asm, simply ignoring it, and
  680.     also ignores the register qualifier with explicit register
  681.     specifications.  That is:
  682.  
  683.     long fubar(__D0 int a) ...   /* DICE METHOD  */
  684.  
  685.     long fubar(a)             /* DICE METHOD  */ __D0 int a;
  686.     {
  687.     ...
  688.     long __asm fubar(register __d0 int a)
  689.     ... /* SAS/C */
  690.  
  691.     DICE will accept the SAS/C registered args procedure format in the
  692.     MAJOR HEADING of portability but it's unreadable.
  693.  
  694. dice/C1:089                                                      dice/C1:089
  695.  
  696.     BREAK outside of loop/switch
  697.     ----------------------------
  698.     The BREAK statement normally breaks out of the nearest switch, do,
  699.     for, or while statement.  If you are not within any of those
  700.     constructs there is nowhere to BREAK to and this error message will
  701.     occur.
  702.  
  703. dice/C1:090                                                      dice/C1:090
  704.  
  705.     CONTINUE outside of loop
  706.     ------------------------
  707.     The CONTINUE statement normally continue's to the nearest do, for, or
  708.     while statement (note that switch() statements are skipped).  If you
  709.     are not within a loop statement then CONTINUE has nowhere to go and
  710.     this error message occurs.
  711.  
  712. dice/C1:091                                                      dice/C1:091
  713.  
  714.     Cannot take the address of a constant
  715.     -------------------------------------
  716.     You cannot take the address of a constant.  E.G. int *a = &4;  ...
  717.     what is that supposed to mean?    If you code structures to constant
  718.     addresses remember to cast the constant addresses as pointers.
  719.  
  720. dice/C1:092                                                      dice/C1:092
  721.  
  722.     Cannot passed unaligned structs by value
  723.     ----------------------------------------
  724.     The __unaligned storage qualifier is meant for certain very rare
  725.     situations where you do not want structures to be word aligned.
  726.     Unfortunately, DICE is not able to perform all possible operations on
  727.     such structures and passing them by value is one of those operations.
  728.     You can pass a pointer to the structure just fine, just not by value.
  729.  
  730. dice/C1:093                                                      dice/C1:093
  731.  
  732.     Prototype required for inline call
  733.     ----------------------------------
  734.     Inline library calls are generally implemented by #include'ing the
  735.     appropriate prototype file.  The DICE method is to #include the
  736.     appropriate file in clib/, e.g. <clib/exec_protos.h>.  DICE will find
  737.     "dinclude:clib/exec_protos.h" first which then declares the #pragma's
  738.     and finally includes the commodore protos,
  739.     "dinclude:amiga20/clib/exec_protos.h".  This error occurs if a
  740.     #pragma has been found for a routine but no ANSI prototype.  DICE
  741.     requires an ANSI prototype as well as a #pragma to be able to make an
  742.     inline library call.
  743.  
  744. dice/C1:094                                                      dice/C1:094
  745.  
  746.     Input must be a seekable file
  747.     -----------------------------
  748.     DICE must be able to seek around the input file.  This error occurs
  749.     if, for example, you specify a pipe as the input file instead of a
  750.     disk file.
  751.  
  752. dice/C1:095                                                      dice/C1:095
  753.  
  754.     Can't open %s
  755.     -------------
  756.     DICE is unable to open the specified file
  757.  
  758. dice/C1:096                                                      dice/C1:096
  759.  
  760.     Read failed
  761.     -----------
  762.     DICE is able to open the file but Read() failed unexpectedly.
  763.  
  764. dice/C1:097                                                      dice/C1:097
  765.  
  766.     Can't open output %s
  767.     --------------------
  768.     DICE is unable to create either a temporary output file or your
  769.     specified output file, depending on what it is doing.  For example,
  770.     if you compile a source file into an object DICE can give this error
  771.     while attempting to create the temporary assembly (.a) file before
  772.     assembling it into your object.
  773.  
  774. dice/C1:098                                                      dice/C1:098
  775.  
  776.     Incorrect type for indirection
  777.     ------------------------------
  778.     You can only indirect (the unary '*' operator) through a pointer.
  779.  
  780. dice/C1:099                                                      dice/C1:099
  781.  
  782.     Base variable (%.*s) for pragma is undefined
  783.     --------------------------------------------
  784.     DICE has found a subroutine call for which a #pragma statement is
  785.     present, but the library base for the #pragma statement is missing.
  786.     Typically this will occur when you #include the pragma file directly
  787.     without including the prototypes or library definition as in:
  788.  
  789.     #include <pragmas/exec_pragmas.h>
  790.     ...
  791.     Disable();
  792.  
  793.     To solve the problem, you should #include the corresponding clib file
  794.     like:
  795.  
  796.     #include <clib/exec_protos.h>
  797.  
  798. dice/C1:100                                                      dice/C1:100
  799.  
  800.     sizeof(type) is 0
  801.     -----------------
  802.     The size of the type passed to sizeof is zero bytes long.  Typically
  803.     this occurs when you take the size of an undefined structure tag or
  804.     the sizeof a void.
  805.  
  806. dice/C1:101                                                      dice/C1:101
  807.  
  808.     Duplicate variable/symbol in same {} block: %.*s
  809.     ------------------------------------------------
  810.     This occurs when you have two variables in the same block which have
  811.     the exact same MAJOR HEADING (usually as the result of a cut/paste
  812.     operation).  Simply reMAJOR HEADING one of the variables (or delete
  813.     the duplicated line).
  814.  
  815. dice/C1:102                                                      dice/C1:102
  816.  
  817.     Variable declared but not used: %.*s
  818.     ------------------------------------
  819.     This warning identifies a variable which is not referenced within the
  820.     scope of a subroutine.    Often this is the result of code that has
  821.     been #ifdefed out.  DICE will continue to compile the code.
  822.  
  823. dice/C1:103                                                      dice/C1:103
  824.  
  825.     Variable overides procedure argument: %.*s
  826.     ------------------------------------------
  827.     You have declared a local variable which is the same MAJOR HEADING as
  828.     one of the parameters to the current procedure as in:
  829.  
  830.     void foo(int i)
  831.     {
  832.        int i;
  833.     ...
  834.  
  835.     Since there would be no way to access the parameter, DICE issues the
  836.     error.    You need to reMAJOR HEADING either the parameter or the local
  837.     variable.  This is often the result of a cut/paste operation within
  838.     the editor.
  839.  
  840. dice/C1:104                                                      dice/C1:104
  841.  
  842.     Pragma argument count conflict with prototype: %.*s
  843.     ---------------------------------------------------
  844.     This error indicates that there is a difference of opinion as to the
  845.     number of parameters that an inline function takes.  The #pragma
  846.     statement for the function codes the number of parameters while the
  847.     prototype explicitely lists them.  If you encounter this error, you
  848.     will have to examine the two in order to determine which is right.
  849.  
  850. dice/C1:105                                                      dice/C1:105
  851.  
  852.     Only D0 supported as a return register for pragmas: %.*s
  853.     --------------------------------------------------------
  854.     The #pragma statement had a value other than 0 in the next to the
  855.     last character of the register specification.  Since all Amiga
  856.     functions return the result in D0, you need to correct the prototype.
  857.  
  858. dice/C1:106                                                      dice/C1:106
  859.  
  860.     Attempt to indirect through void pointer
  861.     ----------------------------------------
  862.     DICE detected an attempt to use a void pointer to reference memory.
  863.     Since a void pointer can not point to anything real, you must cast
  864.     the pointer to the correct type before using it.
  865.  
  866.     void *vp;
  867.     char c;
  868.     ...
  869.     c = *vp;  /* Not allowed */
  870.     c = *(char *)vp;  /* This eliminates the error */
  871.  
  872. dice/C1:107                                                      dice/C1:107
  873.  
  874.     Structure/Union %s has no members
  875.     ---------------------------------
  876.     After parsing the structure, there turned out to be no members in it.
  877.     You need to correct the declaration of the structure.  Often this is
  878.     the result of a macro expansion.
  879.  
  880. dice/C1:108                                                      dice/C1:108
  881.  
  882.     Missing comma in initialization expression
  883.     ------------------------------------------
  884.     When initializing an array, DICE did not find a comma between two
  885.     elements in the array.    Often DICE is correct about assuming you
  886.     needed the comma, but you should check it to be certain.
  887.  
  888.     char foo[10] = { 1, 2, 3 /* oops */ 4, 5 };
  889.  
  890. dice/C1:109                                                      dice/C1:109
  891.  
  892.     Return type for procedures do not match from: %s
  893.     ------------------------------------------------
  894.     The procedure that you are declaring OR assigning (in the case of a
  895.     function pointer) returns a different type than what it is being
  896.     matched to.  This will be followed by an C1:115 error message which
  897.     indicates the type that was expected.  To correct this, you will need
  898.     to either insert a cast (only as a last resort) or correct the
  899.     declarations.
  900.  
  901. dice/C1:110                                                      dice/C1:110
  902.  
  903.     Number of args mismatch with prototype
  904.     --------------------------------------
  905.     The procedure being declared does not have the same number of
  906.     arguments as a prototype previously encountered for this procedure.
  907.     You will need to correct one or the other.
  908.  
  909. dice/C1:111                                                      dice/C1:111
  910.  
  911.     Prototype into Non-Prototype
  912.     ----------------------------
  913.     A function that was previously declared as a prototype style function
  914.     is now being redeclared as a non-prototype style function in a manner
  915.     which causes the types to be incompatible.  You need to correct one
  916.     or the other.
  917.  
  918. dice/C1:112                                                      dice/C1:112
  919.  
  920.     Incompatible procedure Argument #%d type: %s
  921.     --------------------------------------------
  922.     This can occur in one of two places:  During the declaration of a
  923.     function or during the assignment of a function pointer.  In both
  924.     cases, one of the parameters of the two types (the original prototype
  925.     or the left hand side of the assignment) doesn't match.  This will be
  926.     followed by a C1:115 error message which indicates the type that was
  927.     expected.  To correct this, you will need to fix the declarations.
  928.  
  929. dice/C1:113                                                      dice/C1:113
  930.  
  931.     Argument #%d is in a different register
  932.     ---------------------------------------
  933.     This is usually the result of matching __STKARGS function with a
  934.     __REGARGS function.  In rare cases it can be seen when you actually
  935.     declare the parameters to be in specific registers.  You will need to
  936.     correct the declarations to make them match.
  937.  
  938. dice/C1:114                                                      dice/C1:114
  939.  
  940.     Structure Types do not match: %s
  941.     --------------------------------
  942.     Two Structure/Union/Bitfield types are not equivalent.    You will need
  943.     to either insert a cast or correct the declarations.  This will be
  944.     followed by a C1:115 error message to indicate the type that was
  945.     expected.
  946.  
  947. dice/C1:115                                                      dice/C1:115
  948.  
  949.     Does not match original declaration type: %s
  950.     --------------------------------------------
  951.     This is always paired up with another error message (C1:035, C1:109,
  952.     C1:112, or C1:114) to provide more information about a type that was
  953.     mismatched.  This message simply tells you what was expected.  You
  954.     will never see this message by itself and any corrective action will
  955.     be based on the immediately previous error message.
  956.  
  957. dice/C1:116                                                      dice/C1:116
  958.  
  959.     Subroutine too complex to generate code for
  960.     -------------------------------------------
  961.     In rare cases, DICE will run out of registers (or get itself into an
  962.     impossible situation).    Instead of generating bad code, DICE issues
  963.     this error message and aborts.    You can report the problem to us
  964.     (with the sample code of course), but in the meantime you can
  965.     continue to compile your code by breaking it up into smaller
  966.     subroutines.
  967.  
  968. dice/C1:117                                                      dice/C1:117
  969.  
  970.     Internal Compiler error %d: %s
  971.     ------------------------------
  972.     In an even rarer caes where the compiler has detected some impossible
  973.     state, it will issue this error message.  Unfortunately there is no
  974.     cookbook way to get around this, but as a first stab, you should
  975.     clean up all other error messages which you have gotten in your code.
  976.     In order for us to fix this, we would need a complete compilable
  977.     sample.
  978.  
  979. dice/C1:118                                                      dice/C1:118
  980.  
  981.     Can not read locale library file: %s
  982.     ------------------------------------
  983.     When attemping to build a locale based program, the compiler was
  984.     unable to open up the file that was specified on the command line.
  985.     Please check the options to the compiler and run it again.
  986.     Additional problems could be related to the version of locale, but
  987.     this would be a rare case.
  988.  
  989. dice/C1:119                                                      dice/C1:119
  990.  
  991.     unrelocatable data reference in const storage
  992.     ---------------------------------------------
  993.     This occurs when you attempt to put a relocatable pointer into const
  994.     storage. Since by definition const is position independent, you will
  995.     need to change the declarations which are causing the problem or
  996.     compile with a different option.
  997.  
  998. dice/C1:120                                                      dice/C1:120
  999.  
  1000.     Can not open needed math library: %s
  1001.     ------------------------------------
  1002.     When attempting to compile a code which uses floating point math,
  1003.     DICE needs to open up the Amiga supplied math libraries.  You will
  1004.     either need to compile with a different math option or locate the
  1005.     appropriate libraries on your system disks.
  1006.  
  1007. dice/CP:001                                                      dice/CP:001
  1008.  
  1009.     No input file specified
  1010.     -----------------------
  1011.     DCPP was run without any input file specification
  1012.  
  1013. dice/CP:002                                                      dice/CP:002
  1014.  
  1015.     Unable to create %s
  1016.     -------------------
  1017.     DCPP Was unable to create the requested output file.  This is
  1018.     normally a temporary file.
  1019.  
  1020. dice/CP:003                                                      dice/CP:003
  1021.  
  1022.     Unknown directive
  1023.     -----------------
  1024.     DCPP has encountered a # directive which is unknown to it.
  1025.  
  1026. dice/CP:004                                                      dice/CP:004
  1027.  
  1028.     Maximum number of #if levels (%d) exceeded
  1029.     ------------------------------------------
  1030.     You may only have up to 256 levels of #if nesting
  1031.  
  1032. dice/CP:006                                                      dice/CP:006
  1033.  
  1034.     Multiple #else's for an #if, suggest #elif
  1035.     ------------------------------------------
  1036.     This normally indicates a mistake in constructing complex
  1037.     #if/#elif/#else/#endif sequences.
  1038.  
  1039. dice/CP:007                                                      dice/CP:007
  1040.  
  1041.     #endif without associated #if
  1042.     -----------------------------
  1043.     Occurs when you have an #endif without a matching #if.
  1044.  
  1045. dice/CP:009                                                      dice/CP:009
  1046.  
  1047.     #error directive: %.*s
  1048.     ----------------------
  1049.     The #error directive has been encountered.  This directive is defined
  1050.     to generate an error on purpose and used by programmers for that
  1051.     express purpose.
  1052.  
  1053. dice/CP:010                                                      dice/CP:010
  1054.  
  1055.     Maximum number of #include/macro levels (%d) exceeded
  1056.     -----------------------------------------------------
  1057.     DCPP can handle up to 32 levels of includes and macro nestings.
  1058.  
  1059. dice/CP:011                                                      dice/CP:011
  1060.  
  1061.     File Size mismatch %s (%d)
  1062.     --------------------------
  1063.     This error should never occur and, if it does, is probably indicative
  1064.     of problems elsewhere in the system.  Essentially, DCPP uses Seek()
  1065.     to determine the size of the file then Read()s it in.  If the numbers
  1066.     don't match you get this error.
  1067.  
  1068. dice/CP:012                                                      dice/CP:012
  1069.  
  1070.     Ran out of memory!
  1071.     ------------------
  1072.     DCPP has run out of memory.  This does not normally occur as DCPP
  1073.     uses the least memory of all the main compiler executables.  This can
  1074.     occur if you do not have much memory in the system, though.  There
  1075.     are a number of things that can be done to fix the situation... try
  1076.     using precompiled includes, try specifying a temporary directory (-T
  1077.     option to DCC) that is not in RAM:
  1078.  
  1079. dice/CP:013                                                      dice/CP:013
  1080.  
  1081.     Read Error from %s
  1082.     ------------------
  1083.     A read error occured while DCPP was attempting to read a file.
  1084.  
  1085. dice/CP:014                                                      dice/CP:014
  1086.  
  1087.     stringtize '#' valid only before macro argument in a #define
  1088.     ------------------------------------------------------------
  1089.     You may only stringtize a macro argument as in:
  1090.  
  1091.     #define stringof(fubar) #fubar
  1092.  
  1093.     Attempting to stringtize other tokens is illegal
  1094.  
  1095. dice/CP:015                                                      dice/CP:015
  1096.  
  1097.     unterminated #if's left over from include after EOF: %d/%d
  1098.     ----------------------------------------------------------
  1099.     One or more #if's was left unclosed (i.e. no matching #endif) at the
  1100.     end of a file. While you can nest #include's in #if's you cannot
  1101.     start an #if in an #include and #endif it outside that #include.
  1102.  
  1103. dice/CP:016                                                      dice/CP:016
  1104.  
  1105.     Unexpected EOF (unterminated comment?)
  1106.     --------------------------------------
  1107.     A comment was left unterminated when the file EOF occured.  This can
  1108.     also occur if you forget an end quote.
  1109.  
  1110. dice/CP:017                                                      dice/CP:017
  1111.  
  1112.     Software Error line 177
  1113.     -----------------------
  1114.     This an other software errors generally indicate a bug in DCPP.  It
  1115.     is possible to get software errors from illegal files tha generate
  1116.     situations which confuse DCPP.
  1117.  
  1118. dice/CP:018,CP:019                                         dice/CP:018,CP:019
  1119.  
  1120.     Unterminated double quoted string, Unterminated single quoted character constant
  1121.     --------------------------------------------------------------------------------
  1122.     Unterminated string and/or character constants were detected.
  1123.  
  1124. dice/CP:020                                                      dice/CP:020
  1125.  
  1126.     Read Error on precompiled header file
  1127.     -------------------------------------
  1128.     A read error occured reading a precompiled header file.
  1129.  
  1130. dice/CP:021                                                      dice/CP:021
  1131.  
  1132.     Error parsing precompiled header file
  1133.     -------------------------------------
  1134.     This indicates a software error of some sort with the precompiled
  1135.     header routines.  DICE automatically discards precompiled headers
  1136.     that do not match the version of the compiler in use so this error
  1137.     message will only be generated if DCPP really gets confused somehow.
  1138.  
  1139. dice/CP:022                                                      dice/CP:022
  1140.  
  1141.     Can't seek in output file
  1142.     -------------------------
  1143.     You must specify a disk file as the output file for DCPP.  DCPP must
  1144.     often seek in the output file.
  1145.  
  1146. dice/CP:023                                                      dice/CP:023
  1147.  
  1148.     No symbol specified for #undef
  1149.     ------------------------------
  1150.     You have an #undef directive which specifies no symbol to undef
  1151.  
  1152. dice/CP:024                                                      dice/CP:024
  1153.  
  1154.     Illegal NULL symbol in defined macro
  1155.     ------------------------------------
  1156.     You have somehow managed to define a 0 length symbol.    This is
  1157.     usually indicative of a syntax error somewhere.
  1158.  
  1159. dice/CP:025                                                      dice/CP:025
  1160.  
  1161.     Maximum number of macro arguments (%d) exceeded
  1162.     -----------------------------------------------
  1163.     Macros cannot deal with more then 256 arguments.  There is no limit
  1164.     on the size of a macro.
  1165.  
  1166. dice/CP:026,CP:027                                        dice/CP:026,CP:027
  1167.  
  1168.     Expected comma
  1169. Expected closing paren
  1170.     -------------------------------------
  1171.     Generally occurs when parsing macros, a comma or closing paren was
  1172.     expected.
  1173.  
  1174. dice/CP:028                                                      dice/CP:028
  1175.  
  1176.     Software error in macro replace: %d/%d %d/%d
  1177.     --------------------------------------------
  1178.     Again, this indicates a software error somewhere in the routine that
  1179.     handles argument substitution.    While it is most likely due to an
  1180.     illegal macro it could also be due to problem with DCPP.
  1181.  
  1182. dice/CP:029                                                      dice/CP:029
  1183.  
  1184.     Recursive use of macro <macroMAJOR HEADING>
  1185.     -------------------------------------------
  1186.     You called a macro recursively, this would lead to an infinite loop.
  1187.  
  1188. dice/CP:030                                                      dice/CP:030
  1189.  
  1190.     Unexpected EOF in macro %s
  1191.     --------------------------
  1192.     This can occur if a macro contains an unterminated comment or string.
  1193.  
  1194. dice/CP:031                                                      dice/CP:031
  1195.  
  1196.     Macro crosses #include boundary
  1197.     -------------------------------
  1198.     A weird error you should never get.  There are a few situations where
  1199.     DCPP is not ANSI compatible (due to the way DCPP recurses through
  1200.     macros) which will generate this error message.
  1201.  
  1202. dice/CP:033                                                      dice/CP:033
  1203.  
  1204.     Not enough arguments to macro: %d/%d
  1205.     ------------------------------------
  1206.     You referenced a macro which needs more arguments then you supplied!
  1207.  
  1208. dice/CP:034                                                      dice/CP:034
  1209.  
  1210.     Expected closing paren, got '%c' in macro %s (too many args?)
  1211.     -------------------------------------------------------------
  1212.     You have most likely specified more arguments then the macro takes.
  1213.     This can also occur if unexpected characters are encountered when
  1214.     processing a macro.
  1215.  
  1216. dice/CP:035                                                      dice/CP:035
  1217.  
  1218.     Software Error (Creator)
  1219.     ------------------------
  1220.     DCPP has gotten confused
  1221.  
  1222. dice/CP:036                                                      dice/CP:036
  1223.  
  1224.     Software Error in macro %s symbol %s
  1225.     ------------------------------------
  1226.     DCPP has gotten confused
  1227.  
  1228. dice/CP:037                                                      dice/CP:037
  1229.  
  1230.     Software Error in allocator %d
  1231.     ------------------------------
  1232.     DCPP has gotten very confused
  1233.  
  1234. dice/CP:038                                                      dice/CP:038
  1235.  
  1236.     GetNominalInclude() failed
  1237.     --------------------------
  1238.     This indicates a problem openning an #include file.  Normally you
  1239.     should get a 'Can't open file' and not this message.
  1240.  
  1241. dice/CP:039,CP:040,CP:041                          dice/CP:039,CP:040,CP:041
  1242.  
  1243.     Syntax error, Too many close parens, Expression too complex
  1244.     -----------------------------------------------------------
  1245.     These occur during DCPP expression parsing for #if's and are
  1246.     indicative of problems in your expression
  1247.  
  1248. dice/CP:042                                                      dice/CP:042
  1249.  
  1250.     Error parsing expression
  1251.     ------------------------
  1252.     This is similar to a syntax error and indicates an improperly
  1253.     constructed expression.
  1254.  
  1255. dice/CP:043                                                      dice/CP:043
  1256.  
  1257.     Error in #include line
  1258.     ----------------------
  1259.     DCPP was unable to parse the specified #include directive.  There are
  1260.     a few ANSI constructs, such as using macros in an #include directive,
  1261.     that DCPP has yet to support.
  1262.  
  1263. dice/CP:044                                                      dice/CP:044
  1264.  
  1265.     Can't seek in precompiled header file
  1266.     -------------------------------------
  1267.     Indicates a general problem accessing a precompiled header file.
  1268.  
  1269. dice/CP:045                                                      dice/CP:045
  1270.  
  1271.     Expected comma or close paren
  1272.     -----------------------------
  1273.     Another expression parsing error.  DCPP was expecting one thing and
  1274.     got something else.
  1275.  
  1276. dice/CP:046                                                      dice/CP:046
  1277.  
  1278.     Expected close paren for macro %s
  1279.     ---------------------------------
  1280.     DCPP had a problem parsing the specified macro, looking for a close
  1281.     parenthesis and not finding one.
  1282.  
  1283. dice/CP:047                                                      dice/CP:047
  1284.  
  1285.     Can't open file %.*s
  1286.     --------------------
  1287.     DCPP was unable to open the specified file.
  1288.  
  1289. dice/AS:001                                                      dice/AS:001
  1290.  
  1291.     No input file specified
  1292.     -----------------------
  1293.     You ran DAS without specifying the assembly file to assemble!
  1294.  
  1295. dice/AS:002                                                      dice/AS:002
  1296.  
  1297.     Unable to open %s
  1298.     -----------------
  1299.     DAS was unable to open the assembly file you specified
  1300.  
  1301. dice/AS:003                                                      dice/AS:003
  1302.  
  1303.     Empty File or Unable to Seek
  1304.     ----------------------------
  1305.     DAS cannot assemble empty files.  This error can also occur if you
  1306.     specify a device or pipe instead of a file (DAS must be able to seek
  1307.     within the file).
  1308.  
  1309. dice/AS:004                                                      dice/AS:004
  1310.  
  1311.     Ran out of memory, you may have to break up your source files
  1312.     -------------------------------------------------------------
  1313.     DAS is a known memory hog, if you get this error message the most
  1314.     effective work around is to breakup the source file in question into
  1315.     two or more pieces.
  1316.  
  1317. dice/AS:005                                                      dice/AS:005
  1318.  
  1319.     Error reading input
  1320.     -------------------
  1321.     DAS has problems reading the assembly file you specified
  1322.  
  1323. dice/AS:006                                                      dice/AS:006
  1324.  
  1325.     Unable to create %s
  1326.     -------------------
  1327.     DAS was unable to create the object file you specified.  This could
  1328.     be due to specifying a path for which some sub directories do not
  1329.     exist, for example.
  1330.  
  1331. dice/AS:009                                                      dice/AS:009
  1332.  
  1333.     Syntax error
  1334.     ------------
  1335.     A syntax error occured attempting to parse the specified line of
  1336.     assembly
  1337.  
  1338. dice/AS:010                                                      dice/AS:010
  1339.  
  1340.     Illegal Label: %s
  1341.     -----------------
  1342.     The specified label is illegal. DAS only accepts alpha-numerics, '_',
  1343.     and @.
  1344.  
  1345. dice/AS:011                                                      dice/AS:011
  1346.  
  1347.     Expected an operator, got: %c
  1348.     -----------------------------
  1349.     This generally indicates a syntax error in an expression.
  1350.  
  1351. dice/AS:012                                                      dice/AS:012
  1352.  
  1353.     Expected an expression
  1354.     ----------------------
  1355.     This generally indicates a syntax error in an expression.
  1356.  
  1357. dice/AS:013                                                      dice/AS:013
  1358.  
  1359.     Bad register specification
  1360.     --------------------------
  1361.     An illegal register specification was given, such as:
  1362.         movem.l D0-D2/A5:,-(sp)
  1363.  
  1364. dice/AS:014                                                      dice/AS:014
  1365.  
  1366.     Expected no operands for %s
  1367.     ---------------------------
  1368.     The pseudoop on the specified line does not take any operands
  1369.  
  1370. dice/AS:015                                                      dice/AS:015
  1371.  
  1372.     Bad internal id
  1373.     ---------------
  1374.     This indicates a software error within DAS.
  1375.  
  1376. dice/AS:016                                                      dice/AS:016
  1377.  
  1378.     extension of .%c is illegal
  1379.     ---------------------------
  1380.     The most common occurance of this error message is when the main
  1381.     compiler tries to cast an integer into a void or vise versa and
  1382.     doesn't catch the problem, passing an instruction to DAS with a .0
  1383.     extension.
  1384.  
  1385. dice/AS:017                                                      dice/AS:017
  1386.  
  1387.     bad operand size: %d
  1388.     --------------------
  1389.     This normally indicates a software error within DAS.
  1390.  
  1391. dice/AS:018                                                      dice/AS:018
  1392.  
  1393.     Removed branch to next location
  1394.     -------------------------------
  1395.     This occurs if the verbose option is given.  DAS is indicating that
  1396.     it has removed a branch instruction.
  1397.  
  1398. dice/AS:019                                                      dice/AS:019
  1399.  
  1400.     Branch Optimization Module
  1401.     --------------------------
  1402.     A software error occured in the branch optimization module.
  1403.  
  1404. dice/AS:020                                                      dice/AS:020
  1405.  
  1406.     Bad l_Mask/l_RegNo %d 0x%04x
  1407.     ----------------------------
  1408.     Generally indicates a software error in the MOVEM/MOVE optimization
  1409.     module.
  1410.  
  1411. dice/AS:021                                                      dice/AS:021
  1412.  
  1413.     Optimized Bxx - BRA
  1414.     -------------------
  1415.     This occurs if the verbose option is given and indicates that DAS has
  1416.     been able to optimize a 'branch to a branch' into a single branch.
  1417.  
  1418. dice/AS:022                                                      dice/AS:022
  1419.  
  1420.     Illegal relocation
  1421.     ------------------
  1422.     This occurs if the assembly attempts to do a relocation for which
  1423.     there is no analog in the amiga object module format.
  1424.  
  1425. dice/AS:023                                                      dice/AS:023
  1426.  
  1427.     Negative Section length: %d
  1428.     ---------------------------
  1429.     This occurs if, somehow, you've managed to confuse DAS into thinking
  1430.     the length of a section is less then 0!
  1431.  
  1432. dice/AS:024                                                      dice/AS:024
  1433.  
  1434.     Bad section directive, format is [MAJOR HEADING],type
  1435.     -----------------------------------------------------
  1436.     Generally indicates a syntax error parsing the section directive.
  1437.  
  1438. dice/AS:025                                                      dice/AS:025
  1439.  
  1440.     Illegal section type, must be one of: code,data,bss,abs
  1441.     -------------------------------------------------------
  1442.     You have specified an illegal section directive.  The section type
  1443.     may be one of DATA, BSS, CODE, or ABS.    ABS sections are used to
  1444.     export absolute labels such as _LVO* style labels.
  1445.  
  1446. dice/AS:026                                                      dice/AS:026
  1447.  
  1448.     Conflict in section MAJOR HEADING, previous section exists with different type
  1449.     ------------------------------------------------------------------------------
  1450.     When specifying section MAJOR HEADINGs you may not specify the same
  1451.     MAJOR HEADING for two different section types.    You can specify the
  1452.     same section MAJOR HEADING for the same section type as many times as
  1453.     you wish, and DICE relies on this feature heavily to switch between
  1454.     the code, data and other sections.
  1455.  
  1456. dice/AS:027                                                      dice/AS:027
  1457.  
  1458.     Only positive label offsets for relocation purposes
  1459.     ---------------------------------------------------
  1460.     DAS can only deal with positive label offsets.    That is, it cannot
  1461.     deal with subtraction of address labels.
  1462.  
  1463. dice/AS:028                                                      dice/AS:028
  1464.  
  1465.     Must specify .W or .L for relocatable outer displacement
  1466.     --------------------------------------------------------
  1467.     This generally indicates a syntax error in a 68020 instruction.  The
  1468.     outer displacement must be explicitly specified as word or long.
  1469.  
  1470. dice/AS:029                                                      dice/AS:029
  1471.  
  1472.     Cannot have outer displacement if no brackets [] in pseudoop
  1473.     ------------------------------------------------------------
  1474.     This generally indicates a syntax error in a 68020 instruction.
  1475.  
  1476. dice/AS:030                                                      dice/AS:030
  1477.  
  1478.     This is a 68020 opcode, use 'mc68020' directive
  1479.     -----------------------------------------------
  1480.     You have specified a 68020 (or greater) opcode without specifying the
  1481.     'mc68020' directive.
  1482.  
  1483. dice/AS:031                                                      dice/AS:031
  1484.  
  1485.     Undefined Label: %s
  1486.     -------------------
  1487.     The specified label is referenced in the assembly but not defined
  1488.     anywhere.
  1489.  
  1490. dice/AS:032                                                      dice/AS:032
  1491.  
  1492.     Expected terminating %c in string
  1493.     ---------------------------------
  1494.     A string beginning with a double quote must be terminated by a double
  1495.     quote. A string beginning with a single quote must be terminated by a
  1496.     single quote.
  1497.  
  1498. dice/AS:033                                                      dice/AS:033
  1499.  
  1500.     Extranious garbage ignored: %s
  1501.     ------------------------------
  1502.     DAS has completed processing a line of assembly but there is extra,
  1503.     unexpected junk on the line.
  1504.  
  1505. dice/AS:034                                                      dice/AS:034
  1506.  
  1507.     Illegal Addressing mode(s) %d %d opcode %s
  1508.     ------------------------------------------
  1509.     The specified opcode does not have the capability to use the
  1510.     specified addressing modes (refer to the specific line of assembly,
  1511.     the addressing mode codes are cryptic).
  1512.  
  1513. dice/AS:035                                                      dice/AS:035
  1514.  
  1515.     Directive requires a label
  1516.     --------------------------
  1517.     The directive on the specified line requires a label beginning in the
  1518.     left hand column.  E.G. an EQU without no label.
  1519.  
  1520. dice/AS:036                                                      dice/AS:036
  1521.  
  1522.     Directive requires a size extension
  1523.     -----------------------------------
  1524.     The directive, probably a DS or DC directive, requires a .B, .W, or
  1525.     .L extension.
  1526.  
  1527. dice/AS:037                                                      dice/AS:037
  1528.  
  1529.     Expected comma, got %c (ascii %d)
  1530.     ---------------------------------
  1531.     This generally indicates a syntax error in an expression
  1532.  
  1533. dice/AS:038                                                      dice/AS:038
  1534.  
  1535.     Data generation from directive different size between passes %d - %d
  1536.     --------------------------------------------------------------------
  1537.     This generally indicates something wierd with the arguments to a DC
  1538.     or DS directive... the number of bytes the directive specifies has
  1539.     changed between passes!
  1540.  
  1541. dice/AS:039                                                      dice/AS:039
  1542.  
  1543.     internal error handling debug directive
  1544.     ---------------------------------------
  1545.     This generally indicates a software error in the handling of the
  1546.     debug directive, which is used by the compiler to include -d1 line
  1547.     debug information.
  1548.  
  1549. dice/AS:040                                                      dice/AS:040
  1550.  
  1551.     Label multiply defined: %s
  1552.     --------------------------
  1553.     The given label is defined in more then one place in the assembly.
  1554.  
  1555. dice/AS:041                                                      dice/AS:041
  1556.  
  1557.     Unknown Directive: %s
  1558.     ---------------------
  1559.     The specified directive is not implemented in DAS.
  1560.  
  1561. dice/AS:042                                                      dice/AS:042
  1562.  
  1563.     Label address mismatch between passes %s %d - %d
  1564.     ------------------------------------------------
  1565.     A phase error between passes has occured.  This can occur due to an
  1566.     instruction changing size unexpectedly between passes or due to a bug
  1567.     in DAS's internal optimizations.
  1568.  
  1569. dice/AS:043                                                      dice/AS:043
  1570.  
  1571.     Address mismatch between passes %d - %d
  1572.     ---------------------------------------
  1573.     See AS:042
  1574.  
  1575. dice/AS:044                                                      dice/AS:044
  1576.  
  1577.     Word offset out of range: %d
  1578.     ----------------------------
  1579.     Indicates a word offset is beyond the -32768 to 32767 range of values
  1580.     it is allowed to take on.
  1581.  
  1582. dice/AS:045                                                      dice/AS:045
  1583.  
  1584.     Byte offset out of range: %d
  1585.     ----------------------------
  1586.     Indicates a byte offset is beyond the -128 to 127 range of values it
  1587.     is allowed to take on.
  1588.  
  1589. dice/AS:046                                                      dice/AS:046
  1590.  
  1591.     offset out of range: %d (0-7 only)
  1592.     ----------------------------------
  1593.     Indicates a bit field offset is beyond the 0-7 allowed for it.
  1594.  
  1595. dice/AS:047                                                      dice/AS:047
  1596.  
  1597.     offset out of range: %d (1-8 only)
  1598.     ----------------------------------
  1599.     Indicates a bit field offset is beyond the 1-8 allowed for it (ADDQ,
  1600.     etc..)
  1601.  
  1602. dice/AS:048                                                      dice/AS:048
  1603.  
  1604.     offset out of range: %d (0-15 only)
  1605.     -----------------------------------
  1606.     Indicates a bit field offset is beyond the 0-15 allowed for it (TRAP,
  1607.     etc..)
  1608.  
  1609. dice/AS:049                                                      dice/AS:049
  1610.  
  1611.     short branch to next instruction illegal
  1612.     ----------------------------------------
  1613.     It is illegal to have a short (byte offset) branch to the next
  1614.     instruction because this instruction format is reserved for word
  1615.     offset branches.
  1616.  
  1617. dice/AS:050                                                      dice/AS:050
  1618.  
  1619.     byte branch is out of range
  1620.     ---------------------------
  1621.     The destination of the branch cannot be reached with a byte offset.
  1622.     This normally occurs if you force the branch to use a byte offset.
  1623.     Note that if you specify a branch with NO extension, DAS will
  1624.     automatically optimize the branch to use a byte offset if possible.
  1625.  
  1626. dice/AS:051                                                      dice/AS:051
  1627.  
  1628.     internal instruction id error: %d
  1629.     ---------------------------------
  1630.     Generally indicates a software error within DAS.
  1631.  
  1632. dice/LK:001                                                      dice/LK:001
  1633.  
  1634.     Can't create JMP for PC-rel offset greater then +/-32K, hunk too large
  1635.     ----------------------------------------------------------------------
  1636.     DLink cannot handle PC-relative jumps that are greater then +/-32K if
  1637.     jumping within the same module.  DLink has no problem with
  1638.     PC-relative jumps to outside the module (it create a jump table at
  1639.     the end of the module for that).  This error indicates you must
  1640.     either use the large-code model or split up the source file in
  1641.     question.
  1642.  
  1643. dice/LK:002                                                      dice/LK:002
  1644.  
  1645.     Relocation error, range (%d) falls outside hunk (%s)
  1646.     ----------------------------------------------------
  1647.     DLink has detected a relocation entry in an object or library module
  1648.     that specifies a relocation outside the program being linked.
  1649.  
  1650. dice/LK:003                                                      dice/LK:003
  1651.  
  1652.     Ran out of memory during linking
  1653.     --------------------------------
  1654.     DLink has run out of memory.  DLink can take a large amount of memory
  1655.     to run, especially when compiling with the 2.0 amiga libraries.  On a
  1656.     small machine you may have to compile with -1.3 instead of -2.0.
  1657.  
  1658. dice/LK:004                                                      dice/LK:004
  1659.  
  1660.     Relocation error, relocation to non-existant hunk %d of %d
  1661.     ----------------------------------------------------------
  1662.     DLink has detected a relocation entry in an object module that points
  1663.     to a non-existant hunk.
  1664.  
  1665. dice/LK:005                                                      dice/LK:005
  1666.  
  1667.     No relocation info allowed for BSS data!
  1668.     ----------------------------------------
  1669.     It is illegal to have relocations for BSS data.  You can relocate an
  1670.     address in BSS to some other hunk but cannot relocate information IN
  1671.     a BSS hunk.  The BSS hunk must remain zero'd out.
  1672.  
  1673. dice/LK:006                                                      dice/LK:006
  1674.  
  1675.     PC relative access to illegal symbol (type %d)
  1676.     ----------------------------------------------
  1677.     DLink has detected a PC relative access to a symbol which is not
  1678.     PC-relative accessible... that is, not in a code hunk or not in the
  1679.     same code hunk if -frag is enabled.
  1680.  
  1681. dice/LK:007                                                      dice/LK:007
  1682.  
  1683.     Internal Error in jump table creation
  1684.     -------------------------------------
  1685.     This indicates a software error in DLink relating to the creation of
  1686.     jump tables.  This should never occur, but if it does you should be
  1687.     able to work around it by using the large code model.
  1688.  
  1689. dice/LK:008                                                      dice/LK:008
  1690.  
  1691.     External symbol relocation error, relocation to non-existant hunk
  1692.     -----------------------------------------------------------------
  1693.     DLink has detected a symbol relocation to a hunk that does not exist.
  1694.  
  1695. dice/LK:009                                                      dice/LK:009
  1696.  
  1697.     Relocation error, offset not word aligned
  1698.     -----------------------------------------
  1699.     DLink has detected a word or long relocation to a byte-aligned
  1700.     address. word and long relocations may only be made to word-aligned
  1701.     addresses.
  1702.  
  1703. dice/LK:010                                                      dice/LK:010
  1704.  
  1705.     Relocation to illegal symbol (type %d)
  1706.     --------------------------------------
  1707.     DLink has detected a relocation to an illegal symbol.  For example,
  1708.     an A4-relative relocation to a symbol in the code hunk instead of the
  1709.     data hunk.
  1710.  
  1711. dice/LK:011                                                      dice/LK:011
  1712.  
  1713.     Error parsing object module %s offset %d
  1714.     ----------------------------------------
  1715.     DLink has detected what is most likely a corrupt object module.
  1716.  
  1717. dice/LK:012                                                      dice/LK:012
  1718.  
  1719.     Unknown symbol type %d in file %s
  1720.     ---------------------------------
  1721.     DLink has come across a symbol type which it does not understand.
  1722.  
  1723. dice/LK:013                                                      dice/LK:013
  1724.  
  1725.     Unknown hunk type 0x%08lx in %s
  1726.     -------------------------------
  1727.     DLink has come across a hunk type that it does not understand,
  1728.     possibly indicating a corrupted object module.
  1729.  
  1730. dice/LK:014                                                      dice/LK:014
  1731.  
  1732.     Software Error 146
  1733.     ------------------
  1734.     This indicates a software error within DLink, we would appreciate it
  1735.     if you reported the error.
  1736.  
  1737. dice/LK:015                                                      dice/LK:015
  1738.  
  1739.     object format error, more hunks then expected
  1740.     ---------------------------------------------
  1741.     DLink has come across more hunks in an object module then the object
  1742.     module's header has specified.
  1743.  
  1744. dice/LK:016                                                      dice/LK:016
  1745.  
  1746.     object format error, fewer hunks then expected
  1747.     ----------------------------------------------
  1748.     DLink has come across fewer hunks in an object module then the object
  1749.     module's header has specified.
  1750.  
  1751. dice/LK:017,LK:018,LK:019                          dice/LK:017,LK:018,LK:019
  1752.  
  1753.     Error 556, Error 562, Error 571
  1754.     -------------------------------
  1755.     These indicate a software error within DLink, we would appreciate it
  1756.     if you reported the error.
  1757.  
  1758. dice/LK:020                                                      dice/LK:020
  1759.  
  1760.     Cannot deal with empty data hunks!
  1761.     ----------------------------------
  1762.     DLink cannot deal with 0 length data hunks.
  1763.  
  1764. dice/LK:021                                                      dice/LK:021
  1765.  
  1766.     final size mismatch %d/%d
  1767.     -------------------------
  1768.     DLink carefully calculates the size of a module incrementally and
  1769.     through an algorithm.  If these sizes mismatch it generally indicates
  1770.     a bug somewhere within dlink.  We would appreciate it if these and
  1771.     other software errors were reported.
  1772.  
  1773. dice/LK:022                                                      dice/LK:022
  1774.  
  1775.     internal reloc array mismatch %d/%d
  1776.     -----------------------------------
  1777.     This is another software error relating to the internal self checks
  1778.     DLink makes.
  1779.  
  1780. dice/LK:023,LK:024                                        dice/LK:023,LK:024
  1781.  
  1782.     Assertion failed line %d %s, Error freeing memory
  1783.     -------------------------------------------------
  1784.     DLink is really confused if you ever get these.  We would appreciate
  1785.     it if you report this error when you get it.
  1786.  
  1787. dice/LK:025                                                      dice/LK:025
  1788.  
  1789.     PC relative relocation to data symbol! %s:%s sym=%.*s
  1790.     -----------------------------------------------------
  1791.     You cannot make a PC-relative relocation to a data symbol.  This
  1792.     message could indicate incorrect usage of the const storage
  1793.     qualifier.
  1794.  
  1795. dice/LK:026                                                      dice/LK:026
  1796.  
  1797.     32 bit relocations illegal for -pi/-pr: %s:%s
  1798.     ---------------------------------------------
  1799.     DLink will check the relocations it generates against the compilation
  1800.     options you gave it.  In this case, DLink has found that it must do
  1801.     32 bit relocations which is in direct conflict with the purpose of
  1802.     the -pi or -pr options to DCC.
  1803.  
  1804. dice/LK:027                                                      dice/LK:027
  1805.  
  1806.     32 bit DATA/BSS relocations illegal for -r: %s:%s
  1807.     -------------------------------------------------
  1808.     DLink will check the relocations it generates against the compilation
  1809.     options you gave it.  In this case, DLink has found that it must do
  1810.     32 bit data/bss relocations which are in direct conflict with the
  1811.     purpose of the -r options to DCC.... pure code would not be
  1812.     generated.  Note that DICE still allows you to statically initialize
  1813.     pointers to addresses of variables or routines through the generation
  1814.     of autoinit code.
  1815.  
  1816. dice/LK:028                                                      dice/LK:028
  1817.  
  1818.     Relocation scan, hunk out of range: %d/%d
  1819.     -----------------------------------------
  1820.     This message is similar to LK:002
  1821.  
  1822. dice/LK:029                                                      dice/LK:029
  1823.  
  1824.     PC relative relocations for BSS data is illegal
  1825.     -----------------------------------------------
  1826.     This message is similar to LK:025 but indicates a PC relative
  1827.     relocation into BSS instead of initialized DATA.
  1828.  
  1829. dice/LK:030                                                      dice/LK:030
  1830.  
  1831.     Illegal PC relative relocation: %s:%s to %s:%s
  1832.     ----------------------------------------------
  1833.     This message is a catch-all for other illegal PC-relative relocations
  1834.     such as between code hunks of different MAJOR HEADINGs when -frag is
  1835.     eanbled.
  1836.  
  1837. dice/LK:031                                                      dice/LK:031
  1838.  
  1839.     label(An) relocation to code section is illegal
  1840.     -----------------------------------------------
  1841.     DLink has come across a small-data model relocation into a code hunk
  1842.     instead of into a data or bss hunk.
  1843.  
  1844. dice/LK:032                                                      dice/LK:032
  1845.  
  1846.     8 bit relocation out of range (%d) in %s
  1847.     ----------------------------------------
  1848.     DLink is unable to perform an 8 bit relocation due to it being out of
  1849.     the valid -128 to +127 range.
  1850.  
  1851. dice/LK:033                                                      dice/LK:033
  1852.  
  1853.     16 bit inter-hunk relocation out of range (%d) in %s
  1854.     ----------------------------------------------------
  1855.     DLink is unable to perform a 16 bit relocation due to it being out of
  1856.     the valid -32768 to +32767 range.
  1857.  
  1858. dice/LK:034                                                      dice/LK:034
  1859.  
  1860.     Multiply defined symbol: %.*s (%s & %s)
  1861.     ---------------------------------------
  1862.     DLink has come across two definitions for the same symbol between
  1863.     object modules.  This can also occur when porting UNIX code which
  1864.     expects a common variable linking model.  DICE has the capability to
  1865.     generate common variables, please refer to the -mu option to DCC for
  1866.     more information.
  1867.  
  1868. dice/LK:035                                                      dice/LK:035
  1869.  
  1870.     Multiply defined symbol in same library! %.*s
  1871.     ---------------------------------------------
  1872.     DLink has come across two definitions for the same symbol IN THE SAME
  1873.     LIBRARY MODULE.
  1874.  
  1875. dice/LK:036                                                      dice/LK:036
  1876.  
  1877.     Undefined Symbol: %.*s (%s)
  1878.     ---------------------------
  1879.     DLink has come across references to a symbol but is unable to find a
  1880.     definition for the symbol.
  1881.  
  1882. dice/LK:037                                                      dice/LK:037
  1883.  
  1884.     Illegal A4-rel to far object: %.*s %s from %s
  1885.     ---------------------------------------------
  1886.     DLink has come across an attempt to make a small-data model reference
  1887.     to an object only accessible through the absolute long addressing
  1888.     mode.  This can occur if you declare a variable as __far in one
  1889.     module but not in another. Such extern's are better placed in a
  1890.     header file so this type of confusion cannot occur.
  1891.  
  1892.     It is illegal to make small-data accesses to objects declared as
  1893.     __far or compiled with -mD. This can occur, for example, if you
  1894.     compile a module -mD and declare a library base variable, say,
  1895.     IntuitionBase, which is then referenced by the OpenScreen() tag as
  1896.     small-data due to the use of the small-data amiga.lib
  1897.  
  1898.     The solution is to either not compile the module __far or to leave
  1899.     the -mD option in and declare IntuitionBase as __near, as in:
  1900.  
  1901.     __near long IntuitionBase;
  1902.  
  1903.     These types of problems normally occur only when you attempt to mix
  1904.     models.. that is, compile some modules with the small data model and
  1905.     others with the large data model.
  1906.  
  1907. dice/LK:038                                                      dice/LK:038
  1908.  
  1909.     Absolute refs to BSS/DATA illegal with -r/-p* sym=%.*s
  1910.     ------------------------------------------------------
  1911.     32 bit references to a BSS/DATA symbol are illegal when you generate
  1912.     residentable or position independant code.  DICE will automatically
  1913.     work around these restrictions so the error is most likely due to
  1914.     either mixed up memory models (compiling some files with -r and
  1915.     others wiethout -r) or custom assembly of your own that makes an
  1916.     illegal reference for the memory model chosen.
  1917.  
  1918. dice/LK:039                                                      dice/LK:039
  1919.  
  1920.     Hunk has no CODE, DATA or BSS! %s in %s
  1921.     ---------------------------------------
  1922.     DLink has come across a hunk with no CODE, DATA, or BSS subsections.
  1923.  
  1924. dice/LK:040                                                      dice/LK:040
  1925.  
  1926.     32 bit data-data relocations are illegal when using -r
  1927.     ------------------------------------------------------
  1928.     This error message is similar to LK:038 and LK:037 and indicates a
  1929.     problem relating to the following type of declaration:
  1930.  
  1931.     long a, *b = &a;
  1932.  
  1933.     Note that DICE should work around the restriction AUTOMATICALLY when
  1934.     you use the -r option, so unless you have mixed memory models up
  1935.     while compiling you should not get this error.
  1936.  
  1937. dice/LK:041                                                      dice/LK:041
  1938.  
  1939.     Unable to find %s model <%s>
  1940.     ----------------------------
  1941.     DLink is unable to find the specified object module or library.
  1942.     DLink will attempt to find the library verbatim and with a suffix
  1943.     based on the current memory model.
  1944.  
  1945. dice/LK:042                                                      dice/LK:042
  1946.  
  1947.     Cannot frag when using -r
  1948.     -------------------------
  1949.     DLink must use the small-data and small-code models when generating
  1950.     residentable code.
  1951.  
  1952. dice/LK:043                                                      dice/LK:043
  1953.  
  1954.     Bad option: %s
  1955.     --------------
  1956.     DLink has been given a bad command line option
  1957.  
  1958. dice/LK:044                                                      dice/LK:044
  1959.  
  1960.     Unable to open %s
  1961.     -----------------
  1962.     DLink was unable to open the specified file or, if a library, the
  1963.     file plus an appropriate suffix based on the memory model.
  1964.  
  1965. dice/LK:045                                                      dice/LK:045
  1966.  
  1967.     Error 253 (%d)
  1968.     --------------
  1969.     Indicates a software error within DLink.
  1970.  
  1971. dice/LK:046                                                      dice/LK:046
  1972.  
  1973.     Unable to create %s
  1974.     -------------------
  1975.     DLink was unable to create the specified file.
  1976.  
  1977. dice/LK:047                                                      dice/LK:047
  1978.  
  1979.     Read error on %s
  1980.     ----------------
  1981.     DLink got an error while reading the specified file.
  1982.  
  1983. dice/LK:051                                                      dice/LK:051
  1984.  
  1985.     Illegal Hunk addr=%08lx type=%08lx MAJOR HEADING=%s
  1986.     ---------------------------------------------------
  1987.     DLink has come across an illegal hunk, usually due to internal memory
  1988.     corruption (i.e. a software error of some sort)
  1989.  
  1990. dice/LK:052                                                      dice/LK:052
  1991.  
  1992.     Object size mismatch in %s
  1993.     --------------------------
  1994.     This normally indicates a corrupted object module or library.  The
  1995.     module or library is shorter then expected.
  1996.  
  1997. dice/LK:053                                                      dice/LK:053
  1998.  
  1999.     Unknown symbol type %d sym=%.*s
  2000.     -------------------------------
  2001.     DLink has come across a symbol of unknown type.  This message is
  2002.     pretty much the same as LK:013.
  2003.  
  2004. dice/LK:054                                                      dice/LK:054
  2005.  
  2006.     16 bit data relocation out of range (%d) sym=%.*s in %s
  2007.     -------------------------------------------------------
  2008.     DLink is unable to relocate a small-data reference due to there being
  2009.     more then 64KBytes of data.  You may have to switch to using the
  2010.     large data model or to qualifying some of your declarations as __far.
  2011.  
  2012.